   1 .
   2 .BUDDHA'S BOGGLER
   3 .
  10 clear ;BC=0;FC=220;NT=0;D=5;E=0;F=0;I=0;O=999;U=0;V=0;Z=-34;for N=1to 5;@(N)=Z;Z=Z+4;next N
  30 N=129;for Z=-37to -43step -1;box 0,Z,N,1,3;N=N+6;next Z;for Z=-45to 45step 45;box Z,-25,3,22,3;next Z
  40 W=35;for Z=1to 5;box -45,@(Z),W,3,3;W=W-6;next Z;CX=-44;CY=-7;print "1";CX=1;CY=-7;print "2";CX=46;CY=-7;print "3
  50 CX=-68;CY=24;print "*** BUDDHA'S BOGGLER ***";for N=0to 999;next N;box 0,24,160,7,2;BC=1;goto 65
  60 BC=A;A=A+8
  65 FC=BC+5;CX=-20;CY=21;print "FROM up ";Z=1;H=1;goto 250
  70 CX=-20;CY=21;print "TO  down  ";Z=0;goto 250
  80 if K=2C=0;goto 140
  90 if K=3C=45;goto 180
 100 C=-45;if Z=0goto 300
 110 if D=0goto 220
 120 S=D;L=@(S);gosub 430
 130 box C,L,W,3,3;D=D-1;goto 70
 140 if Z=0goto 300
 150 if E=0goto 220
 160 S=E;L=@(S);gosub 430
 170 box C,L,W,3,3;E=E-1;goto 70
 180 if Z=0goto 300
 190 if F=0goto 220
 200 S=F;L=@(S);gosub 430
 210 box C,L,W,3,3;F=F-1;goto 70
 220 CX=-56;CY=7;print "!!! INVALID MOVE !!!";&(20)=99;NT=75;MU=20;NT=0;for N=0to 15;BC=7;FC=0
 230 for M=0to 5;next M;BC=0;FC=7;next N;BC=BC+A;box 0,7,160,7,2;&(20)=0;gosub 480;if Zgoto 65
 240 I=1;return 
 250 if JX(1)=0K=2
 260 if JX(1)=-1K=1
 270 if JX(1)=1K=3
 280 CX=22;CY=21;print #1,K;if TR(1)goto 290
 285 goto 250
 290 NT=5;MU=55;MU=58;MU=62;if Z=0MU=55
 292 if Z MU=65
 294 NT=0;goto 80
 300 if C=0goto 350
 310 if C=45goto 380
 320 H=D;L=@(D);gosub 430
 330 if I=1I=0;goto 70
 340 D=D+1;S=D;L=@(S);box C,L,W,3,3;goto 410
 350 H=E;L=@(E);gosub 430
 360 if I=1I=0;goto 70
 370 E=E+1;S=E;L=@(S);box C,L,W,3,3;goto 410
 380 H=F;L=@(F);gosub 430
 390 if I=1I=0;goto 70
 400 F=F+1;S=F;L=@(S);box C,L,W,3,3
 410 gosub 480;Z=1;if F=5goto 490
 420 goto 60
 430 P=0;Q=C;R=0;if H=0return 
 440 M=PX(Q+3,L);if M=0if Zgoto 470
 450 if M=0if Z=0goto 550
 460 Q=Q+1;R=R+1;goto 440
 470 R=R+3;R=Rmul 2-1;W=R;return 
 480 V=V+1;box 0,37,55,13,1;box 0,37,53,11,2;CX=-20;CY=37;print "MOVE:",#3,V,;return 
 490 for Z=0to 2;NT=9;MU=50;MU=55;MU=60;MU=65;MU=60;MU=55;next Z;MU=50;NT=0;clear ;if V<O O=V
 500 if V>31goto 520
 510 CY=0;print " * CONGRATULATIONS GURU! *";&(17)=28;&(18)=35;&(19)=48;&(16)=117;&(21)=15;&(22)=255
 512 for M=0to 500;next M;&(16)=93;for M=0to 750;next M;&(16)=70;for M=0to 999;next M;for M=22to 16step -1;&(M)=0;next M;run 
 515 for N=0to 2500;next N;run 
 520 print ;print "      YOU DID IT !!!
 530 print ;print "   SOLUTION IS POSSIBLE";print " IN 31 MOVES - TRY AGAIN!
 540 print ;print ;print " BEST SO FAR:",#4,O;goto 515
 550 if (R+3)mul 2-1<Wgoto 220
 560 return 
>:return 
